package utils

import (
	"fmt"
	"os"
	"path/filepath"
)

func CreateLockFile(lockDir string) (*os.File, error) {
	if err := os.MkdirAll(lockDir, os.ModePerm); err != nil {
		return nil, fmt.Errorf("创建锁目录失败: %v", err)
	}

	lockFile := filepath.Join(lockDir, "mysqlbackup.lock")
	file, err := os.OpenFile(lockFile, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)
	if err != nil {
		return nil, fmt.Errorf("检测到另一个备份进程正在运行")
	}
	return file, nil
}
